/*
 * @Author: your name
 * @Date: 2022-03-03 10:12:28
 * @LastEditTime: 2022-03-03 10:33:17
 * @LastEditors: Please set LastEditors
 * @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
 * @FilePath: \JS\day05\6-访问器属性.js
 */
//访问器属性不能 直接定义 它包含的是一对get和set方法
//四个特性 configurable  默认是false  enumerable 默认也是false 
//get 读取访问器属性会触发get方法  修改定义访问器属性会触发 set方法
/*  var obj={
     _year:2000,//_开头表示obj对象的私有属性
     editor:1 
 }
 //访问器属性  year 属性使我们的访问器属性
 Object.defineProperty(obj,'year',{
     get:function(){
         return this._year
     },

     //这里的newyear是下面赋值的year
     set:function(NewYear){
         if(NewYear!=this._year){
             this._year=NewYear;
             this.editor++
         }
     }
 });
 //obj.year=2001 //无效
 console.log(obj.yaer,'读取访问器属性');
obj.year=2001;
console.log(obj.year,'访问器属性');
console.log(obj._yaer,'修改之后的私有属性');
console.log(obj.editor,'修改之后的editor');
console.log(Object.getOwnPropertyDescriptors(obj));
console.log(obj); */

var obj={
    _year:2000,// _year表示obj对象的私有属性
    editor:1
}
// 访问器属性 year属性是我们的访问器属性
Object.defineProperty(obj,'year',{
    // 表示访问器属性可以被读取 不可以被写入
    get:function(){
        return this._year
    },
    // 表示访问器属性可以被写入
    // newYear --2001
    set:function(newYear){
        if(newYear!=this._year){
            this._year=newYear;
            this.editor++
        }
    }
});
// obj.year=2001;无效
console.log(obj.year,'读取访问器属性');
obj.year=2001;
console.log(obj.year,'访问器属性');
console.log(obj._year,'修改之后的私有属性');
console.log(obj.editor,'修改后的editor');
console.log(Object.getOwnPropertyDescriptors(obj));
console.log(obj);